package org.xin.generate.service;

import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import org.xin.framework.base.service.IBaseService;
import org.xin.generate.pojo.entity.Generate;

import java.util.List;
import java.util.Map;

/**
 * @author ：xin
 * @date ：Created in 19:24
 * @description：
 * @modified By：$
 * @version: $
 */
public interface GenerateService extends IBaseService<Generate> {
    List<String> getSchemas();

    DataSourceConfig getDataSourceConfig();

    AutoGenerator init(Generate generate);

    PackageConfig getPackageConfig(Generate generate);

    StrategyConfig getStrategyConfig(Generate generate);

    TemplateConfig getTemplateConfig(String templatePath);

    GlobalConfig getGlobalConfig(Generate generate);

    InjectionConfig getInjectionConfig(Map<String, Object> map);

    List<FileOutConfig> getFileOutConfig();

    AutoGenerator initConfig(PackageConfig packageConfig, DataSourceConfig dataSourceConfig, StrategyConfig strategyConfig, TemplateConfig template, GlobalConfig globalConfig);

//    AutoGenerator initConfig(AutoGenerator generator, List<FileOutConfig> focList, InjectionConfig injectionConfig);

    boolean generator(AutoGenerator generator);
}
